package com.rocketmq.temp3.common.constant;//package com.potyun.global.constant;
//
//import com.potyun.global.common.RedisUtils;
//
///**
// * 分类汇总管理不同的redis-key
// */
//public interface CacheConstant {
//
//    /**
//     * UMP-SMS服务所有Redis-Key统一的顶级命名空间
//     */
//    String SMS_NAME_SPACE = "UMP_SMS";
//    /**
//     * UMP-SMS服务在切面中Redis-Key的统一命名空间
//     */
//    String SMS_ASPECT_NAME_SPACE = "ASPECT";
//    /**
//     * UMP-SMS服务在普通编码中Redis-Key的统一命名空间
//     */
//    String SMS_NORMAL_NAME_SPACE = "NORMAL";
//    /**
//     * UMP-SMS服务用于事件监听的Redis-Key的统一命名空间
//     */
//    String SMS_EVENT_NAME_SPACE = "EVENT";
//
//    /**
//     * 切面中定义Redis-Key的模板
//     */
//    enum AspectRedisKey {
//        DEFAULT_CACHE_DATA("default", 300L, false),
//        SYSTEM_SOURCE_MAP("SystemSourceMap", 300L, false),
//        BUSINESS_TYPE_MAP("BusinessTypeMap", 300L, false),
//        ORG_DEPARTMENT_MAP("DepartmentMap", 300L, false),
//        CHANNEL_WEIGHT_LIST("ChannelList", 300L, false),
//        BUSINESS_TYPE_LIST("BusinessType", 300L, false),
//        CHANNEL_ELEMENT("Channel_%s", 300L, true, 0),
//        SYSTEM_SOURCE_ELEMENT("SystemSource_%s", 300L, true, 0),
//        IP_ADDRESS_LIST("IpAddressList_%s", 300L, true, 0);
//
//        /**
//         * redis key
//         */
//        private String key;
//        /**
//         * 缓存过期时间(单位：秒)，-1L表示永不过期
//         */
//        private Long expire;
//        /**
//         * 是否使用入参作为key的组成部分
//         */
//        private Boolean withPattern;
//        /**
//         * key中使用到的参数(在参数列表中的索引)
//         */
//        private Integer[] paramIndex;
//
//        AspectRedisKey(String key, Long expire, Boolean withPattern, Integer... paramIndex) {
//            this.key = CacheConstant.SMS_NAME_SPACE + ":" + CacheConstant.SMS_ASPECT_NAME_SPACE + ":" + key;
//            this.expire = expire;
//            this.withPattern = withPattern;
//            this.paramIndex = paramIndex;
//        }
//
//        public String getKey() {
//            return key;
//        }
//
//        Long getExpire() {
//            return expire;
//        }
//
//        /**
//         * 设置Redis-Key的过期时间
//         */
//        public void setExpire(String redisKey) {
//            if (this.getExpire() != -1L) {
//                RedisUtils.setExpire(this.getExpire(), redisKey);
//            }
//        }
//
//        public Boolean getWithPattern() {
//            return withPattern;
//        }
//
//        public Integer[] getParamIndex() {
//            return paramIndex;
//        }
//    }
//
//    /**
//     * 普通编码中定义的Redis-Key常量
//     */
//    enum NormalRedisKey {
//        REDIS_WORKER_ID_HASH_KEY("UMP_WORKER_ID", -1L, "当前应用启动时在服务器上的唯一标识"),
//        REDIS_WORKER_ID_INCR_KEY("UMP_WORKER_ID_INCR", -1L, "工作机器ID(0~31)");
//
//        /**
//         * redis key
//         */
//        private String key;
//        /**
//         * 缓存过期时间(单位：秒)，-1L表示永不过期
//         */
//        private Long expire;
//        /**
//         * Redis-Key在缓存中存储数据的描述
//         */
//        private String desc;
//
//        NormalRedisKey(String key, Long expire, String desc) {
//            this.key = CacheConstant.SMS_NAME_SPACE + ":" + CacheConstant.SMS_NORMAL_NAME_SPACE + ":" + key;
//            this.expire = expire;
//            this.desc = desc;
//        }
//
//        public String getKey() {
//            return key;
//        }
//
//        Long getExpire() {
//            return expire;
//        }
//
//        /**
//         * 设置Redis-Key的过期时间
//         */
//        public void setExpire(String redisKey) {
//            if (this.getExpire() != -1L) {
//                RedisUtils.setExpire(this.getExpire(), redisKey);
//            }
//        }
//
//        public String getDesc() {
//            return desc;
//        }
//    }
//
//    /**
//     * TODO - 此处暂时不定义任何Redis-Key，这里的redis-key主要用于在失效事件触发时传递一些参数
//     */
//    enum EventRedisKey {
//        ;
//
//        /**
//         * redis key
//         */
//        private String key;
//        /**
//         * 缓存过期时间(单位：秒)，-1L表示永不过期
//         */
//        private Long expire;
//        /**
//         * Redis-Key在触发过期失效的事件时处理的业务逻辑描述
//         */
//        private String desc;
//
//        EventRedisKey(String key, Long expire, String desc) {
//            this.key = CacheConstant.SMS_NAME_SPACE + ":" + CacheConstant.SMS_EVENT_NAME_SPACE + ":" + key;
//            this.expire = expire;
//            this.desc = desc;
//        }
//
//        public String getKey() {
//            return key;
//        }
//
//        Long getExpire() {
//            return expire;
//        }
//
//        /**
//         * 设置Redis-Key的过期时间
//         */
//        public void setExpire(String redisKey) {
//            if (this.getExpire() != -1L) {
//                RedisUtils.setExpire(this.getExpire(), redisKey);
//            }
//        }
//
//        public String getDesc() {
//            return desc;
//        }
//    }
//}
